package top.frsf.rpc.registry;

import top.frsf.rpc.entity.ServiceInstance;

import java.util.List;

/**
 * 注册中心服务接口
 *
 * @author He Kuntao
 * @since 2025/7/11 13:53
 */
public interface ServiceRegistry {

    /**
     * 服务注册
     *
     * @param serviceName    服务名称
     * @param instance 服务实例
     */
    void register(String serviceName, ServiceInstance instance);

    /**
     * 服务注销
     *
     * @param serviceName    服务名称
     * @param serviceAddress 服务地址（ip:port）
     */
    void unregister(String serviceName, String serviceAddress);

    /**
     * 服务发现
     *
     * @param serviceName 服务名称
     * @return 可用服务实例
     */
    List<ServiceInstance> discover(String serviceName);

}
